{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "tensorflow_homework_senior_layers.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/henrygas/tensorflow_2_learn/blob/master/tensorflow_homework_senior_layers.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "h-ozJpN3DgKM",
        "colab_type": "code",
        "outputId": "29f79a19-f10c-4501-a9a2-92d05bfe2bac",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 53
        }
      },
      "source": [
        "%tensorflow_version 1.x\n",
        "import tensorflow as tf\n",
        "from tensorflow.examples.tutorials.mnist import input_data\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "%matplotlib inline\n",
        "\n",
        "tf.logging.set_verbosity(tf.logging.INFO)\n",
        "print(tf.__version__)\n",
        "print(np.__version__)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "1.15.0-rc3\n",
            "1.16.5\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iegnIgueEaZf",
        "colab_type": "code",
        "outputId": "c0c11701-0a35-4efd-ca79-cf8c4af54138",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 197
        }
      },
      "source": [
        "mnist = input_data.read_data_sets(\"./\")\n",
        "print(mnist.train.images.shape)\n",
        "print(mnist.train.labels.shape)\n",
        "print(mnist.validation.images.shape)\n",
        "print(mnist.validation.labels.shape)\n",
        "print(mnist.test.images.shape)\n",
        "print(mnist.test.labels.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Extracting ./train-images-idx3-ubyte.gz\n",
            "Extracting ./train-labels-idx1-ubyte.gz\n",
            "Extracting ./t10k-images-idx3-ubyte.gz\n",
            "Extracting ./t10k-labels-idx1-ubyte.gz\n",
            "(55000, 784)\n",
            "(55000,)\n",
            "(5000, 784)\n",
            "(5000,)\n",
            "(10000, 784)\n",
            "(10000,)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WqRLuPM6EwHa",
        "colab_type": "code",
        "outputId": "2578c02f-f465-4a8b-e051-9ffb4e6a89dc",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 719
        }
      },
      "source": [
        "x = tf.placeholder(\"float\", [None, 784])\n",
        "y = tf.placeholder(\"int64\", [None])\n",
        "learning_rate = tf.placeholder(\"float\")\n",
        "\n",
        "L1_units_count = 600\n",
        "L2_units_count = 100\n",
        "L3_units_count = 10\n",
        "\n",
        "min_val = -1\n",
        "max_val = 1\n",
        "\n",
        "W_1 = tf.Variable(tf.truncated_normal([784, L1_units_count], stddev=0.1))\n",
        "b_1 = tf.Variable(tf.truncated_normal([L1_units_count], stddev=0.1))\n",
        "logits_1 = tf.matmul(x, W_1) + b_1\n",
        "output_1 = tf.nn.relu(logits_1)\n",
        "\n",
        "W_2 = tf.Variable(tf.truncated_normal([L1_units_count, L2_units_count], stddev=0.1))\n",
        "b_2 = tf.Variable(tf.truncated_normal([L2_units_count], stddev=0.1))\n",
        "logits_2 = tf.matmul(output_1, W_2) + b_2\n",
        "output_2 = tf.nn.relu(logits_2)\n",
        "\n",
        "W_3 = tf.Variable(tf.truncated_normal([L2_units_count, L3_units_count], stddev=0.1))\n",
        "b_3 = tf.Variable(tf.truncated_normal([L3_units_count], stddev=0.1))\n",
        "logits_3 = tf.matmul(output_2, W_3) + b_3\n",
        "\n",
        "logits = logits_3\n",
        "\n",
        "cross_entropy_loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=y))\n",
        "optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate).minimize(cross_entropy_loss)\n",
        "\n",
        "pred = tf.nn.softmax(logits)\n",
        "correct_pred = tf.equal(tf.argmax(pred, 1), y)\n",
        "accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))\n",
        "\n",
        "batch_size = 16\n",
        "max_train_step = 10000\n",
        "print(\"max_train_step:\", max_train_step)\n",
        "learning_rate_value = 0.1\n",
        "max_try_times = 3\n",
        "saver = tf.train.Saver()\n",
        "\n",
        "acc_validation_max = 0\n",
        "\n",
        "loss_array = list()\n",
        "\n",
        "try_times = 0\n",
        "while try_times < max_try_times:\n",
        "  try_times += 1\n",
        "  with tf.Session() as ses:\n",
        "    ses.run(tf.global_variables_initializer())\n",
        "    for i in range(max_train_step):\n",
        "      xs, ys = mnist.train.next_batch(batch_size)\n",
        "      _, loss = ses.run([optimizer, cross_entropy_loss],\n",
        "                feed_dict={\n",
        "                    x: xs,\n",
        "                    y: ys,\n",
        "                    learning_rate: learning_rate_value\n",
        "                })\n",
        "\n",
        "      if try_times == 1:\n",
        "        loss_array.append(loss)\n",
        "\n",
        "      if i % int(max_train_step / 10) == 0:\n",
        "        print(\"loss[{}]={}\".format(i, loss))\n",
        "\n",
        "    acc_validation = ses.run(accuracy, feed_dict={\n",
        "        x: mnist.validation.images,\n",
        "        y: mnist.validation.labels\n",
        "    })\n",
        "    if acc_validation > acc_validation_max:\n",
        "      acc_validation_max = acc_validation\n",
        "      saver.save(ses, \"./validation_model.ckpt\")\n",
        "\n",
        "    print(\"The {} th times of training is over. loss:{}, acc_validation:{}\\n\".format(try_times, loss, acc_validation))\n",
        "    \n",
        "# using model to run\n",
        "with tf.Session() as ses:\n",
        "  saver.restore(ses, \"./validation_model.ckpt\")\n",
        "  acc_train = ses.run(accuracy, feed_dict={\n",
        "      x: mnist.train.images,\n",
        "      y: mnist.train.labels\n",
        "  })\n",
        "  acc_validation = ses.run(accuracy, feed_dict={\n",
        "      x: mnist.validation.images,\n",
        "      y: mnist.validation.labels\n",
        "  })\n",
        "  acc_test = ses.run(accuracy, feed_dict={\n",
        "      x: mnist.test.images,\n",
        "      y: mnist.test.labels\n",
        "  })\n",
        "  print(\"using validation_model.ckpt, acc_train:{}, acc_validation:{}, acc_test:{}\".format(acc_train, acc_validation, acc_test))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "max_train_step: 10000\n",
            "loss[0]=2.4676082134246826\n",
            "loss[1000]=0.2123345136642456\n",
            "loss[2000]=0.15514995157718658\n",
            "loss[3000]=0.21936194598674774\n",
            "loss[4000]=0.01373111829161644\n",
            "loss[5000]=0.4577820301055908\n",
            "loss[6000]=0.10525079071521759\n",
            "loss[7000]=0.06906004250049591\n",
            "loss[8000]=0.02499786578118801\n",
            "loss[9000]=0.0032645384781062603\n",
            "The 1 th times of training is over. loss:0.14368049800395966, acc_validation:0.9782000184059143\n",
            "\n",
            "loss[0]=2.673900604248047\n",
            "loss[1000]=0.05248703435063362\n",
            "loss[2000]=0.026685312390327454\n",
            "loss[3000]=0.004341126419603825\n",
            "loss[4000]=0.021512897685170174\n",
            "loss[5000]=0.004233694635331631\n",
            "loss[6000]=0.015663931146264076\n",
            "loss[7000]=0.05983118340373039\n",
            "loss[8000]=0.03159569203853607\n",
            "loss[9000]=0.007317689247429371\n",
            "The 2 th times of training is over. loss:0.006137462332844734, acc_validation:0.9800000190734863\n",
            "\n",
            "loss[0]=2.6177239418029785\n",
            "loss[1000]=0.22248168289661407\n",
            "loss[2000]=0.0587475411593914\n",
            "loss[3000]=0.2872404456138611\n",
            "loss[4000]=0.06137046962976456\n",
            "loss[5000]=0.21380408108234406\n",
            "loss[6000]=0.11135555803775787\n",
            "loss[7000]=0.003340376541018486\n",
            "loss[8000]=0.0014944208087399602\n",
            "loss[9000]=0.010241096839308739\n",
            "The 3 th times of training is over. loss:0.11832600086927414, acc_validation:0.9753999710083008\n",
            "\n",
            "INFO:tensorflow:Restoring parameters from ./validation_model.ckpt\n",
            "using validation_model.ckpt, acc_train:0.9880545735359192, acc_validation:0.9800000190734863, acc_test:0.9729999899864197\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "M6AVRv7KFEqu",
        "colab_type": "code",
        "outputId": "556e1f4a-46ae-43df-a1df-aab815406d48",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 574
        }
      },
      "source": [
        "steps = []\n",
        "for i in range(len(loss_array)):\n",
        "  steps.append(i)\n",
        "  \n",
        "x_array = np.array(steps)\n",
        "print(x_array)\n",
        "\n",
        "y_array = np.array(loss_array)\n",
        "print(y_array)\n",
        "\n",
        "plt.figure(figsize=(24, 8))\n",
        "plt.xlabel(\"step\")\n",
        "plt.ylabel(\"loss\")\n",
        "plt.scatter(x_array, y_array)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[   0    1    2 ... 9997 9998 9999]\n",
            "[2.4676082  2.1564455  2.3902788  ... 0.0464793  0.04577263 0.1436805 ]\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.collections.PathCollection at 0x7febf5358c88>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1728x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e2l2fksExeax",
        "colab_type": "code",
        "outputId": "fca8b3cc-f1c6-4817-f6e7-7ae6a0ba7a37",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 53
        }
      },
      "source": [
        "with tf.Session() as ses:\n",
        "  saver.restore(ses, \"./validation_model.ckpt\")\n",
        "  acc_train = ses.run(accuracy, feed_dict={\n",
        "      x: mnist.train.images,\n",
        "      y: mnist.train.labels\n",
        "  })\n",
        "  acc_validation = ses.run(accuracy, feed_dict={\n",
        "      x: mnist.validation.images,\n",
        "      y: mnist.validation.labels\n",
        "  })\n",
        "  acc_test = ses.run(accuracy, feed_dict={\n",
        "      x: mnist.test.images,\n",
        "      y: mnist.test.labels\n",
        "  })\n",
        "  print(\"using validation_model.ckpt, acc_train:{}, acc_validation:{}, acc_test:{}\".format(acc_train, acc_validation, acc_test))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "INFO:tensorflow:Restoring parameters from ./validation_model.ckpt\n",
            "using validation_model.ckpt, acc_train:0.9880545735359192, acc_validation:0.9800000190734863, acc_test:0.9729999899864197\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "L9qRX97l4C_F",
        "colab_type": "text"
      },
      "source": [
        "## 影响模型的因素主要有\n",
        "1. 神经网络隐层数\n",
        "2. 神经网络隐层内节点数\n",
        "3. 初始化权重矩阵\n",
        "4. 损失函数选择\n",
        "5. 优化器选择\n",
        "6. 学习率\n",
        "7. mini-batch SGD中batch_size的选取\n",
        "8. 迭代step数的选取\n",
        "9. 正则项\n",
        "\n",
        "## 调参过程，就从这些方面进行尝试\n",
        "+ 1,2代表模型的复杂度，值越大，越能拟合训练集，让训练结果从欠拟合向过拟合的方向前进。L1隐层用来提取输入层特征，对于图像数据而言，L1隐层的节点数最好设置较大，接近图像的分辨率，这样可以最大限度的提取图像详细特征, 这里设置了600; L2隐层节点数可以设定的稍小一些，这里设置了100；L3层为输出层<br/>\n",
        "+ 3影响了模型的初始状态，它的设定很重要，对结果影响比较大，这里选择了带截距的正态分布取值，取值范围在$2 \\sigma$范围内.<br/>\n",
        "+ 4损失函数选择了交叉熵损失函数，比较适合多分类问题，对结果进行softmax处理，就得到属于每个分类的概率。<br/>\n",
        "+ 5优化器选择了SGD, 每次送入一小批量的训练数据用来训练，根据前馈计算得出loss, 再通过反向传播得到一次权重更新。\n",
        "+ 6学习率learning_rate的设置，影响了到达最优值的速度，值设置的越小，模型收敛的越慢，越可能找到最优值的精确位置，但如果设置的过小，就有可能陷入局部最优了。一般取值0.001, 0.01, 0.1, 0.5, 1， 这里经过反复测试，确定取值为0.1时，可以得到较好的结果。\n",
        "+ 7batch-size的选取，这里选择了16，据说要选择2的指数的值，便于提高效率。\n",
        "+ 8迭代step数的选取，这是很重要的数据，最终将准确率从96%提升到98%以上，有赖于将这个参数放大，它放大后，相当于对训练集的训练过程，持续了超过1个epoch，这样相当于变相增加了数据集的大小，可以得到较好的结果。\n",
        "+ 9正则项，用来防止模型发生过拟合的情况，即训练集上的准确度很高，但在测试集上表现糟糕的情况。"
      ]
    }
  ]
}